"""
类方法
    类属性就是针对类对象定义的属性
        使用 赋值语句在 class 关键字下方可以定义类属性
        类属性用于记录与这个类相关的属性
    类方法就是针对类对象定义的方法
        在类方法内部可以直接访问类属性或者调用其他的类方法

        语法如下：
            @classmethod
            def 类方法名(cls):
                pass

        语法说明：
            类方法需要用修饰器 @classmethod 来标识，告诉解释器这是一个类方法
            类方法的第一个参数应该是 cls
                由哪一个类调用该方法，方法内的 cls 变量就是哪一个类的引用
                这个参数和实例方法的 self 参数类似
                这个参数使用其他名称也可以，但是习惯使用 cls
            通过 类名.方法名() 调用类方法，调用方法时，不需要传递 cls 参数
            在方法的内部：
                可以通过 cls. 访问类的属性
                可以通过 cls. 调用类中其他的方法

"""
class Tool(object):
    
    # 定义类属性
    count = 0

    # 定义类方法
    @classmethod
    def show_tool_count(cls):
        print("工具对象的数量：%d" % cls.count)


    def __init__(self, name):
        self.name = name

        # 让类属性的值 +1
        Tool.count += 1


# 实例化对象
tool = Tool("工具")
tool2 = Tool("刀具")
tool3 = Tool("电脑")

# 调用类方法
Tool.show_tool_count()
